use std::path::Path;
use std::fs;

fn copy_dir_all(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> std::io::Result<()> {
    fs::create_dir_all(&dst)?;
    for entry in fs::read_dir(src)? {
        let entry = entry?;
        let ty = entry.file_type()?;
        if ty.is_dir() {
            copy_dir_all(entry.path(), dst.as_ref().join(entry.file_name()))?;
        } else {
            fs::copy(entry.path(), dst.as_ref().join(entry.file_name()))?;
        }
    }
    Ok(())
}

fn main() {
    // 运行 Tauri 的默认构建脚本
    tauri_build::build();
    
    // 获取输出目录（debug 或 release）
    let out_dir = std::env::var("OUT_DIR").unwrap();
    let profile = std::env::var("PROFILE").unwrap();
    
    // 构建目标路径
    let target_dir = Path::new(&out_dir)
        .ancestors()
        .nth(4)
        .unwrap()
        .join(&profile);
    
  
    // 源文件夹路径（相对于 src-tauri 目录）
    let config_dir = Path::new("../config");

    // 目标文件夹路径
    let dst_config_dir = target_dir.join("config");
    
    println!("cargo:warning=Copying Python files from {:?} to {:?}", config_dir, dst_config_dir);
    
    // 复制文件夹
    if let Err(e) = copy_dir_all(config_dir, dst_config_dir) {
        println!("cargo:warning=Failed to copy config files: {}", e);
    } else {
        println!("cargo:warning=Successfully copied config files");
    }
    
    // 重新运行条件
    println!("cargo:rerun-if-changed=../config");




}